﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Entities;
using DAL;
using System.Text.RegularExpressions;

namespace QuanLyBilliards_Coffee
{
    public partial class FormThemNCC : Form
    {
        public static string mancc;
        public static NhaCungCap thncc = new NhaCungCap();
        public NhaCungCapRepository nc = new NhaCungCapRepository();
        //public static bool kt = false;
        private object nhacc;
        public static string manhacungcap;
        public static bool state = false;
        public FormThemNCC()
        {
            InitializeComponent();
            //LoadNCC(ncc);
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        //private void btnThemNCC_Click(object sender, EventArgs e)
        //{
        //    //  kiem  tra ma ncc co trong csdl
        //    //if ton tai thi hoi ndung co  
        //    //yes thuc hien  cap nhat
        //    // chua co hien them

           
        //    NhaCungCap nvv = getControl();

        //    if(nc.AddNew(nvv))
        //    {
        //        MessageBox.Show("Them Thanh Cong");
        //    }
        //    else
        //        MessageBox.Show("That Bai");
            
        //}
        public bool KiemTraTTTMa(ref string s)
        {
            s="";
            if (!XuLyChuoiVao.KiemTraChuoiRong(txtMaNCC.Text))
                s += "\nban chua nhap ma nhà cung cấp";
            if (!XuLyChuoiVao.KiemTraChuoiRong(txtTenNCC.Text))
                s += "\n bạn chưa nhập tên nhà cung cấp";
            if (s == "")
                return true;
            return false;
        }
        private bool KiemTra(string ma, List<NhaCungCap> ds)
        {

            foreach (var item in ds)
                if (item.MaNCC.Trim().ToUpper() == ma.Trim().ToUpper())
                    return true;
            return false;
      
        }
        //private bool KiemTraSDT(string s)
        //{
        //    //@"^0([1-9]{1})\d{8,9}"
        //    string pattern = @"^0(1-9){1}\d{8,9}";
        //    Regex rg = new Regex(pattern, RegexOptions.IgnoreCase);
        //    if (!rg.IsMatch(s))
        //    {
        //        return false;
        //    }
        //    return true;
        //}
        private bool KiemTraText(string tx)
        {
            tx = txtTenNCC.Text;
            string pattern = @"[a-z]";
            Regex rg = new Regex(pattern, RegexOptions.IgnoreCase);
            if (!rg.IsMatch(tx))
            {

                return false;
            }
            return true;
        }
        private void LoadNCC(IQueryable<NhaCungCap> iQueryable)
        {
            throw new NotImplementedException();
        }
        private NhaCungCap getControl()
        {
            NhaCungCap n = new NhaCungCap();
            n.MaNCC = txtMaNCC.Text;
            n.TenNCC = txtTenNCC.Text;
            n.DiaChi = txtDcNCC.Text;
            n.SDT = txtSDTNCC.Text;
            return n;
        }
        public void LoadNCC(NhaCungCap ncc)
        {
            txtMaNCC.Text = ncc.MaNCC;
            txtTenNCC.Text = ncc.TenNCC;
            txtDcNCC.Text = ncc.DiaChi;
            txtSDTNCC.Text = ncc.SDT;
            
        }
        
        private void FormThemNCC_Load(object sender, EventArgs e)
        {
            
            txtMaNCC.ReadOnly = state;
            if (FromNhaCC.state)
            {
                NhaCungCap ncungcap = nc.GetByMaNhaCungCap(FromNhaCC.mancc);
                if(ncungcap!=null)
                LoadNCC(ncungcap);
            }
            FromNhaCC.state = false;

            
        }

        public IQueryable<NhaCungCap> ncc { get; set; }

        private void btnLuuNCC_Click(object sender, EventArgs e)
        {
                string s = "";
                if (!KiemTraTTTMa(ref s))
                {
                    MessageBox.Show(s);
                }
                else
                {
                    string ma = txtMaNCC.Text;
                    NhaCungCap nvv = getControl();
                    if (!KiemTra(ma, nc.GetAll().ToList()))
                    {
                        if (nc.AddNew(nvv))
                        {
                            MessageBox.Show("Them Thanh Cong");
                        }
                        else
                            MessageBox.Show("That Bai");
                    }
                    else
                        if (MessageBox.Show("Dữ liệu đã có, Bạn muốn cập nhập ?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            if (nc.Update(nvv))
                                MessageBox.Show("Cập nhật Thành Công");
                            else MessageBox.Show("Cập nhật thất bại");
                        }
                }
            
        }

        private void txtMaNCC_Validating(object sender, CancelEventArgs e)
        {
            string m = txtMaNCC.Text;
            if (KiemTraTTTMa(ref m))
            {
                this.Error1.SetError(txtMaNCC, "Bạn chưa nhập Mã Nhà Cung Cấp");
                e.Cancel = true;
            }
        }

        private void txtMaNCC_Validated(object sender, EventArgs e)
        {
            this.Error1.SetError(txtMaNCC, "");
        }

        private void txtSDTNCC_Validating(object sender, CancelEventArgs e)
        {

            string dt = txtSDTNCC.Text;
            if (!XuLyChuoiVao.KiemTraSDT(XuLyChuoiVao.CatKhoangTrangDu(txtSDTNCC.Text)))
            {
                this.Error1.SetError(txtSDTNCC, "Chỉ được nhập số");
                e.Cancel = true;
            }
        }
        private void txtSDTNCC_Validated(object sender, EventArgs e)
        {
            //   Error1.SetError(txtSDTNCC,null);
            this.Error1.SetError(txtSDTNCC, "");
        }
        private void txtTenNCC_Validating(object sender, CancelEventArgs e)
        {
            string t = txtTenNCC.Text;
            if (!KiemTraText(t))
            {
                this.Error1.SetError(txtTenNCC, "Nhập ký tự từ A-Z");
                e.Cancel = true;
            }
        }

        private void txtTenNCC_Validated(object sender, EventArgs e)
        {
            this.Error1.SetError(txtTenNCC, "");
        }


    }
}
